﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAplicaciones1;
 


namespace interfaz
{
    public partial class FormConfirmacionCompra : Form
    {
        private List<Componente> compras;
        private Sistema sistema;
        private double total;
        private double precio;
        public FormConfirmacionCompra(List<Componente> lista_componentes)
        {
            InitializeComponent();
            sistema = Sistema.GetSistema();
            compras = lista_componentes;
            calcularDescuento();
            cargarDatos();
            total = 0;
            precio = 0;
            
        }
        private void calcularDescuento()
        {
            try
            {
                Usuario usuario = sistema.Usuario_loguado;
              
                int descuento = (usuario.Puntos / 100);
                if (descuento != 0)
                {
                    if (descuento > 10)
                        descuento = 10;
                   string retorno = (descuento).ToString();
                   lblDescuento.Text = retorno + "%";
                }
                else
                    lblDescuento.Text = descuento.ToString() + "%";

            }
            catch (Exception ex)
            { }
        }

        private void cargarDatos()
        {
            grdview.Columns.Add("Item Name","Item Name");
            grdview.Columns.Add("Price", "Price");
            grdview.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;


            foreach (Componente componente in compras)
            {
               precio = componente.calcularCosto();
               total += precio;
               DataGridViewRow row_item = null;
               row_item = new DataGridViewRow();
               row_item.CreateCells(grdview);
  
               row_item.Cells[0].Value = componente.devolverNombreItem();
               row_item.Cells[1].Value = precio;
               row_item.Cells[1].Style.Alignment = DataGridViewContentAlignment.MiddleRight;

               if (row_item != null)
               {
                  grdview.Rows.Add(row_item);       
               }
               
            }
            lblValorPrecio.Text = total.ToString();
        }
       

        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                double subtotal_puntos = 0; ;
                Usuario usuario = sistema.Usuario_loguado;
                foreach (Componente componente in compras)
                {
                    sistema.crearCompra(usuario, componente);
                    subtotal_puntos += componente.calcularCosto();
                }
                int sumaPuntos = (Convert.ToInt32(subtotal_puntos) / 10);
                usuario.Puntos +=  sumaPuntos;
                usuario.modificarse();
                MessageBox.Show("La compra se realizó con éxito", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                FormMenu menu = new FormMenu();
                this.Visible = false;
                menu.Show();
                
            }
            catch (Exception ex) 
            {
                MessageBox.Show(ex.Message.ToString(), "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnVolver_Click(object sender, EventArgs e)
        {
            FormMenu menu = new FormMenu();
            menu.Show();
            this.Visible = false;
        }

        private void FormConfirmacionCompra_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
       

    }
}
